home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / TURB_VIS / MISC / EXAMPLE.PAS next >
Pascal/Delphi Source File  |  1990-12-17  |  5KB  |  161 lines

  1. Program Example;
  2.  
  3. Uses Crt,App, Objects, Views, Dialogs, Drivers, Misc;
  4.  
  5. Type
  6.     PMyApp        =    ^TMyApp ;
  7.     TMyApp        =    Object( TApplication )
  8.                         Constructor Init;
  9.                     End;
  10.  
  11. Var
  12.     MyApp    :    TMyApp ;
  13.     Dialog  :   PLinked_Dialog;
  14.  
  15.     Screen_Array    :    Array[1..70] of TNum_Box;
  16.  
  17. Procedure Build_Links;
  18. Var    P    :    TPoint ;
  19.     X,Y :    Integer ;
  20.     N    :    Integer ;
  21. Begin
  22.  
  23.     For N := 1 to 50 do
  24.     Begin
  25.         P.Y := ( N - 1 ) DIV 10     + 8 ;
  26.         P.X := ( N - 1 ) MOD 10 * 4 + 20 ;
  27.  
  28.         Screen_Array[N].Init( P , 3 , 0 , FALSE , N );
  29.         Screen_Array[N].Update_Value;
  30.     End;
  31.  
  32.     For N := 1 to 8 do
  33.     Begin
  34.         P.Y := ( N - 1 ) Div 3 * 2 + 8  ;
  35.         P.X := ( N - 1 ) Mod 3 * 4 + 60 ;
  36.         If ( N > 6 ) then
  37.             P.X := P.X + 4 ;
  38.         Screen_Array[N+50].Init( P , 3 , 0 , FALSE , N+50 );
  39.         Screen_Array[N+50].Update_Value;
  40.     End;
  41.  
  42.     P.Y := 6 ;
  43.  
  44. (* Initialize 5 floating point boxes *)
  45.  
  46.     For N := 1 to 5 do
  47.     Begin
  48.         P.X := ( N * 12 ) ;
  49.         Screen_Array[N+58].Init( P , 4 , 2 , True , N+58 );
  50.     End;
  51.  
  52. (* Insert all boxes before setting links! *)
  53.  
  54.     For N := 1 to 63 do
  55.         Dialog^.Insert( @Screen_Array[N] );
  56.  
  57.     For N := 1 to 50 do
  58.     Begin
  59.         if ( N MOD 10 ) <> 1 then
  60.             Dialog^.Set_Link(@Screen_array[N],DLink_Left ,@Screen_array[N-1]);
  61.         if ( N MOD 10 ) <> 0 then
  62.             Dialog^.Set_Link(@Screen_array[N],DLink_Right,@Screen_array[N+1]);
  63.         if ( N > 10 ) then
  64.             Dialog^.Set_Link(@Screen_array[N],DLink_Up   ,@Screen_array[N-10])
  65.         else
  66.             Dialog^.Set_Link(@Screen_array[N],DLink_Up   ,@Screen_array[59]);
  67.  
  68.         if ( N <41 ) then
  69.             Dialog^.Set_Link(@Screen_array[N],DLink_Down ,@Screen_array[N+10]);
  70.  
  71.         if ( N=10 ) or ( N=20 ) then
  72.             Dialog^.Set_Link(@Screen_array[N],DLink_Right,@Screen_array[51]);
  73.  
  74.         if ( N=30 ) or ( N=40 ) then
  75.             Dialog^.Set_Link(@Screen_array[N],DLink_Right,@Screen_array[54]);
  76.     End;
  77.  
  78.     Dialog^.Set_Link(@Screen_array[50],DLink_Right,@Screen_array[57]);
  79.  
  80.     Dialog^.Set_Link(@Screen_array[51],DLink_Left ,@Screen_array[10]);
  81.     Dialog^.Set_Link(@Screen_array[51],DLink_Right,@Screen_array[52]);
  82.     Dialog^.Set_Link(@Screen_array[51],DLink_Down ,@Screen_array[54]);
  83.  
  84.     Dialog^.Set_Link(@Screen_array[52],DLink_Left ,@Screen_array[51]);
  85.     Dialog^.Set_Link(@Screen_array[52],DLink_Right,@Screen_array[53]);
  86.     Dialog^.Set_Link(@Screen_array[52],DLink_Down ,@Screen_array[55]);
  87.  
  88.     Dialog^.Set_Link(@Screen_array[53],DLink_Left ,@Screen_array[52]);
  89.     Dialog^.Set_Link(@Screen_array[53],DLink_Down ,@Screen_array[56]);
  90.  
  91.     Dialog^.Set_Link(@Screen_array[54],DLink_Left ,@Screen_array[30]);
  92.     Dialog^.Set_Link(@Screen_array[54],DLink_Right,@Screen_array[55]);
  93.     Dialog^.Set_Link(@Screen_array[54],DLink_Down ,@Screen_array[57]);
  94.     Dialog^.Set_Link(@Screen_array[54],DLink_Up   ,@Screen_array[51]);
  95.  
  96.     Dialog^.Set_Link(@Screen_array[55],DLink_Left ,@Screen_array[54]);
  97.     Dialog^.Set_Link(@Screen_array[55],DLink_Right,@Screen_array[56]);
  98.     Dialog^.Set_Link(@Screen_array[55],DLink_Down ,@Screen_array[57]);
  99.     Dialog^.Set_Link(@Screen_array[55],DLink_Up   ,@Screen_array[52]);
  100.  
  101.     Dialog^.Set_Link(@Screen_array[56],DLink_Left ,@Screen_array[55]);
  102.     Dialog^.Set_Link(@Screen_array[56],DLink_Down ,@Screen_array[58]);
  103.     Dialog^.Set_Link(@Screen_array[56],DLink_Up   ,@Screen_array[53]);
  104.  
  105.     Dialog^.Set_Link(@Screen_array[57],DLink_Left ,@Screen_array[50]);
  106.     Dialog^.Set_Link(@Screen_array[57],DLink_Right,@Screen_array[58]);
  107.     Dialog^.Set_Link(@Screen_array[57],DLink_Up   ,@Screen_array[55]);
  108.  
  109.     Dialog^.Set_Link(@Screen_array[58],DLink_Left ,@Screen_array[57]);
  110.     Dialog^.Set_Link(@Screen_array[58],DLink_Up   ,@Screen_array[56]);
  111.  
  112.     For N := 59 to 63 do
  113.     Begin
  114.         if ( N > 59 ) then
  115.             Dialog^.Set_Link(@Screen_array[N],DLink_Left ,@Screen_array[N-1]);
  116.         if ( N < 63 ) then
  117.             Dialog^.Set_Link(@Screen_array[N],DLink_Right,@Screen_array[N+1]);
  118.         Dialog^.Set_Link(@Screen_array[N],DLink_Down,@Screen_array[1]);
  119.     End;
  120. End;
  121.  
  122. Procedure Do_Dialog;
  123. Var    R        :    TRect ;
  124.     TP        :    TPoint ;
  125.     N        :    Integer ;
  126.     Button    :    PButton ;
  127. Begin
  128.  
  129.     R.Assign( 0 , 10 , 80 , 24 );
  130.     Dialog := New( PLinked_Dialog , Init( R , 'Linked Dialog Example' ));
  131.     Dialog^.SetState(sfShadow,False );
  132.  
  133.     Build_Links;
  134.  
  135.     R.Assign( 5 , 8 , 15 , 10 );
  136.     Button := New(PPushButton,Init(R,'~P~ush',cmOk,bfDefault));
  137.     Dialog^.Insert( Button );
  138.  
  139.     R.Assign( 5 , 11 , 15 , 13 );
  140.     Button := New(PPushButton,Init(R,'~E~xit',cmQuit,bfDefault));
  141.     Dialog^.Insert( Button );
  142.  
  143.     Dialog^.Set_Link(Button,DLink_Right,@Screen_array[1]);
  144.  
  145.     MyApp.Insert( Dialog );
  146.  
  147. End;
  148.  
  149.  
  150. Constructor TMyApp.Init;
  151. Begin
  152.     TApplication.Init ;
  153.     Do_Dialog;
  154. End;
  155.  
  156. Begin
  157.     ClrScr;
  158.     MyApp.Init ;
  159.     MyApp.Run ;
  160.     MyApp.Done ;
  161. End.